首页

欢迎

 

Welcome

欢迎来到这里, 这是一个学习数学、讨论数学的网站.

转到问题

请输入问题号, 例如: 2512

IMAGINE, THINK, and DO
How to be a scientist, mathematician and an engineer, all in one?
--- S. Muthu Muthukrishnan

Local Notes

Local Notes 是一款 Windows 下的笔记系统.

Local Notes 下载

Sowya

Sowya 是一款运行于 Windows 下的计算软件.

详情

下载 Sowya.7z (包含最新版的 Sowya.exe and SowyaApp.exe)


注: 自 v0.550 开始, Calculator 更名为 Sowya. [Sowya] 是吴语中数学的发音, 可在 cn.bing.com/translator 中输入 Sowya, 听其英语发音或法语发音.





注册

欢迎注册, 您的参与将会促进数学交流. 注册

在注册之前, 或许您想先试用一下. 测试帐号: usertest 密码: usertest. 请不要更改密码.


我制作的 slides

Problem

随机显示问题

Problèmes d'affichage aléatoires

软件 >> MatLab
Questions in category: MatLab (MatLab).

[MATLAB]用起泡法(冒泡法)对10个数由小到大进行排序

Posted by haifeng on 2019-06-29 09:06:25 last update 2019-06-29 16:10:46 | Answers (1)


[Exer P.30, 1]《数学建模与数学实验》

用起泡法(冒泡法)对10个数由小到大进行排序, 即将相邻两个数进行比较, 小的放到大的前面.


Remark: 当然冒泡法排序不是好的排序算法, 其算法复杂度为 $O(N^2)$.

 

下面是学生写的代码, 请改进

function f=qipaofa(x)
for j=9:-1:1
          for i=1:j
             if(x(i)>x(i+1))
                t=x(i);x(i)=x(i+1);x(i+1)=t;
             end
          end
end
f=x;

% for test
% x=round(10*rand(1,10));


学生2使用C语言编程, 请改进

#include<stdio.h>
main()
{int a[10],i,j,t;
printf("请输入10个数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

for(j=0;j<9;j++)
   for(i=0;i<9-j;i++)
            if(a[i]>a[i+1])
            {t=a[i];a[i]=a[i+1];a[i+1]=t;}

            for(i=0;i<10;i++)
                      printf("%3d",a[i]);

            printf("\n");

}